﻿using EyFramework.Common;
using EyFramework.Sys.Core;
using Ncov2019.Core.Dao;
using Ncov2019.Entity;
using System;
using System.Collections.Generic;

namespace Ncov2019.Core.Service
{
    /// <summary>
    ///  NCOV_USERS表的服务实现类
    /// </summary>
    public class NcovUsersService : BaseHisService, INcovUsersService
    {
        protected readonly INcovUsersDao _NcovUsersDao;

        public NcovUsersService(INcovUsersDao ncovUsersDao)
        {
            _NcovUsersDao = ncovUsersDao;
        }

        public bool ImportUsers(List<NcovUsers> ncovUsers)
        {
            _NcovUsersDao.BeginTrans();
            try
            {
                ncovUsers.ForEach(p =>
                {
                    _NcovUsersDao.Insert(p);
                });
                _NcovUsersDao.CommitTrans();
            }
            catch (Exception ex)
            {
                _NcovUsersDao.RollBackTrans();
                throw new BizException(ex.ToString());
            }
            return true;
        }

        public List<NcovUsersDto> QueryBy(NcovUsersParam queryParam)
        {
            return _NcovUsersDao.QueryBy(queryParam);
        }

        public bool AddNcovUser(NcovUsers ncovUsers)
        {
            ncovUsers.PAT_SEQ = GetHisMaxId("NCOV_USERS", "PAT_SEQ");
            return _NcovUsersDao.Insert(ncovUsers);
        }

        public NcovUsers SelectByPatseq(long patSeq)
        {
            return _NcovUsersDao.GetById(patSeq);
        }

        public bool UpdateNcovUser(NcovUsers ncovUsers)
        {
            return _NcovUsersDao.Update(ncovUsers);
        }

        public bool AbandonUser(NcovUsers ncovUser)
        {
            return _NcovUsersDao.AbandonUser(ncovUser);
        }

        public NcovUsers QueryById(long pat_seq)
        {
            return _NcovUsersDao.GetById(pat_seq);
        }

        public List<NcovUsers> GetUsersByCompany(string company)
        {
            return _NcovUsersDao.GetUsersByCompany(company);
        }
    }
}